﻿#include "jsonprase.h"

#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
jsonPrase::jsonPrase(QObject *parent) : QObject(parent)
{

}

jsonPrase::~jsonPrase()
{

}

bool jsonPrase::prase(QString content, JsonData &jsonData)
{
    // 解析 JSON
    QJsonDocument doc = QJsonDocument::fromJson(content.toUtf8());
    if (doc.isNull()) {
        qDebug() << "Failed to parse JSON";
        return false;
    }
    // 提取根对象
    QJsonObject root = doc.object();

    // 提取 ip 和 port
    jsonData.ip = root["ip"].toString();
    jsonData.port = root["port"].toString();
    for (auto it = root.begin(); it != root.end(); ++it)
    {
        if (it.value().isArray()) {
            for (const QJsonValue &value : it.value().toArray()) {
                QJsonObject itemObj = value.toObject();
                Item item;
                item.key = it.key();
                item.name = itemObj["name"].toString();
                item.action = itemObj["action"].toString();
                item.cmd = itemObj["cmd"].toString();
                jsonData.cmdList.append(item);
            }
        }
    }

    // 打印解析结果
    jsonData.print();
    return true;
}
